package com.eastfair.home.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.eastfair.boot.request.PageParams;
import com.eastfair.boot.service.SuperService;
import com.eastfair.home.dto.WorkOvertimeAuditDTO;
import com.eastfair.home.entity.WorkOvertimeAudit;
import com.eastfair.home.vo.WorkOvertimeAuditVO;
import com.eastfair.venueservice.entity.WorkOvertime;

import java.util.List;

/**
 * <p>
 * 业务接口
 * 加班审核
 * </p>
 *
 * @author dq
 * @date 2022-10-19
 */
@Deprecated
public interface WorkOvertimeAuditService extends SuperService<WorkOvertimeAudit> {

    /**
     * 分页查询加班审核列表VO.
     *
     * @param pageParams the page params
     * @return the page
     */
    Page<WorkOvertimeAuditVO> listWorkOvertimeAuditVO(PageParams<WorkOvertimeAuditDTO> pageParams);

    /**
     * 分页查询加班审核列表.
     *
     * @param pageParams the page params
     * @return the page
     */
    Page<WorkOvertimeAudit> listWorkOvertimeAudit(PageParams<WorkOvertimeAuditDTO> pageParams);

    /**
     * 查询加班审核列表.
     *
     * @param workOvertimeAuditDTO the work overtime audit dto
     * @return the list
     */
    List<WorkOvertimeAudit> listWorkOvertimeAudit(WorkOvertimeAuditDTO workOvertimeAuditDTO);

    /**
     * 加班单号获取加班审核详情.
     *
     * @param workOvertimeNumber the work overtime number
     * @return the vo by work overtime number
     */
    WorkOvertimeAuditVO getVOByWorkOvertimeNumber(String workOvertimeNumber);

    /**
     * 加班单号获取加班审核详情.
     *
     * @param workOvertimeNumber the work overtime number
     * @return the by work overtime number
     */
    WorkOvertimeAudit getByWorkOvertimeNumber(String workOvertimeNumber);

    /**
     * 保存加班审核.
     *
     * @param workOvertimeAuditDTO the work overtime audit dto
     * @return the boolean
     */
    WorkOvertimeAudit saveWorkOvertimeAudit(WorkOvertimeAuditDTO workOvertimeAuditDTO);

    /**
     * 更新加班审核.
     *
     * @param workOvertimeAuditDTO the work overtime audit dto
     * @return the boolean
     */
    boolean updateWorkOvertimeAudit(WorkOvertimeAuditDTO workOvertimeAuditDTO);

    /**
     * 提交加班申请审核.
     *
     * @param workOvertimeAuditDTO the work overtime audit dto
     * @return the boolean
     */
    boolean submitWorkOvertimeAudit(WorkOvertimeAuditDTO workOvertimeAuditDTO);

    /**
     * 审核加班申请.
     *
     * @param workOvertimeAuditDTO the work overtime dto
     * @return the boolean
     */
    boolean auditWorkOvertime(WorkOvertimeAuditDTO workOvertimeAuditDTO);

    /**
     * 更新加班审核结果.
     *
     * @param workOvertimeAuditDTO the work overtime audit dto
     * @return the work overtime audit
     */
    WorkOvertimeAudit updateWorkOvertimeAuditStatus(WorkOvertimeAuditDTO workOvertimeAuditDTO);

    /**
     * 取消加班申请审核.
     *
     * @param workOvertimeNumber the work overtime number
     * @return the boolean
     */
    boolean cancelWorkOvertimeAudit(String workOvertimeNumber);

    /**
     * 加班单号删除加班审核.
     *
     * @param workOvertimeNumber the work overtime number
     * @return the boolean
     */
    boolean removeByWorkOvertimeNumber(String workOvertimeNumber);

    /**
     * 发送加班申请站内信提醒.
     *
     * @param workOvertimeAudit the work overtime
     * @return the boolean
     */
    boolean sendSubmitInnerMsg(WorkOvertimeAudit workOvertimeAudit);

    /**
     * 异步发送加班申请站内信提醒.
     *
     * @param workOvertimeAudit the work overtime
     * @return the boolean
     */
    void asyncSendSubmitInnerMsg(WorkOvertimeAudit workOvertimeAudit);
}
